// utils/user.js

/**
 * 检查用户登录状态
 * @returns {Promise<Object>} 返回用户信息或null
 */
export const checkUserLogin = async () => {
  try {
    const result = await wx.cloud.callFunction({
      name: 'quickstartFunctions',
      data: {
        type: 'getUserInfo'
      }
    })

    if (result.result.success) {
      if (result.result.isNewUser) {
        // 新用户，跳转到个人信息页面
        wx.redirectTo({
          url: '/pages/userProfile/index'
        })
        return null
      } else {
        // 老用户，返回用户信息
        return result.result.data
      }
    } else {
      console.error('获取用户信息失败:', result.result.errMsg)
      return null
    }
  } catch (error) {
    console.error('检查用户登录状态失败:', error)
    return null
  }
}

/**
 * 获取当前用户信息
 * @returns {Promise<Object>} 返回用户信息
 */
export const getCurrentUser = async () => {
  try {
    const result = await wx.cloud.callFunction({
      name: 'quickstartFunctions',
      data: {
        type: 'getUserInfo'
      }
    })

    if (result.result.success && !result.result.isNewUser) {
      return result.result.data
    }
    return null
  } catch (error) {
    console.error('获取当前用户信息失败:', error)
    return null
  }
}

/**
 * 更新用户信息
 * @param {Object} userData 用户数据
 * @returns {Promise<Object>} 更新结果
 */
export const updateUserInfo = async (userData) => {
  try {
    const result = await wx.cloud.callFunction({
      name: 'quickstartFunctions',
      data: {
        type: 'updateUser',
        ...userData
      }
    })

    return result.result
  } catch (error) {
    console.error('更新用户信息失败:', error)
    throw error
  }
}
